import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //1.编写程序数一下 1到 100 的所有整数中出现多少个数字9
//        int count = 0;
//        for (int i = 1; i < 100; i++) {
//           if(i % 10 == 9)
//           {
//               count++;
//           }
//           if(i / 10 == 9)
//           {
//               count++;
//           }
//        }
//        System.out.println("9的个数是：" + count);

        //2.输出 1000 - 2000 之间所有的闰年
//        System.out.println("1000 - 2000 之间所有的闰年:");
//        for (int i = 1000; i <= 2000 ; i++)
//        {
//            if(i % 4 == 0 && i % 100 != 0)
//            {
//                System.out.print(i + " ");
//            }
//            if(i % 200 == 0)
//            {
//                System.out.print("\n");
//            }
//            if(i % 400 == 0)
//            {
//                System.out.print(i + " ");
//            }
//        }

        //3.打印 1 - 100 之间所有的素数
//        System.out.println("1 - 100 之间所有的素数:");
//        for (int i = 1; i < 100; i++)
//        {
//            int temp = (int)Math.sqrt(i);
//            int j = 2;
//            for (; j <= temp; j++)
//            {
//                if(i % j == 0)
//                {
//                    break;
//                }
//            }
//            if(j == temp + 1)
//            {
//                System.out.print(i + " ");
//            }
//        }

        //4.给定一个数字，判定一个数字是否是素数

//        Scanner sc = new Scanner(System.in);
//        System.out.print("请输入一个数#");
//        int i = sc.nextInt();
//        int temp = (int)Math.sqrt(i);
//        int j = 2;
//        for (; j <= temp; j++)
//        {
//            if(i % j == 0)
//            {
//                break;
//            }
//        }
//        if(j == temp + 1)
//        {
//            System.out.print("该数是一个素数");
//        }
//        else
//        {
//            System.out.println("该数不是素数");
//        }

        //5.根据输入的年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
//        System.out.print("请输入年龄#");
//        Scanner sc = new Scanner(System.in);
//        int age = sc.nextInt();
//        if (age <= 18) {
//            System.out.println("是少年呀");
//        } else if (age <= 28) {
//            System.out.println("是青年咯");
//        } else if (age <= 55) {
//            System.out.println("中年了哦");
//        } else {
//            System.out.println("是老年了");
//        }

        //6.多组输入，一个整数（2~20），表示输出的行数，也表示组成“X”的反斜线和正斜线的长度。
//        System.out.println("请输入要打印的图形大小#");
//        Scanner sc = new Scanner(System.in);
//        int size = sc.nextInt();
//        int a = size - 2;//3
//        int control = 0;
//        for (int i = 0; i < size; i++) {
//            for (int j = 0; j < control; j++) {
//                System.out.print(" ");
//            }
//            System.out.print("*");
//            for (int j = 0; j < a - control * 2; j++) {
//                System.out.print(" ");
//            }
//            if((size % 2 == 0) || (i != size / 2))
//            {
//                System.out.print("*");
//            }
//            if(i < (size - 1) / 2){
//                control++;
//            }
//            else{
//                if((size % 2 == 1) || (i != (size - 1) / 2))
//                {
//                    control--;
//                }
//            }
//            System.out.println();
//        }

        //7.完成猜数字游戏 ，用户输入数字，判断该数字是大于，小于，还是等于随机生成的数字，等于的时候退出程序。
//        System.out.print("猜数字的大小#");
//        Scanner sc = new Scanner(System.in);
//        Random rd = new Random();
//        int gus = rd.nextInt(100);
//        while(true)
//        {
//            int x = sc.nextInt();
//            if(x > gus)
//            {
//                System.out.println("大了");
//            }
//            else if (x < gus)
//            {
//                System.out.println("小了");
//            }
//            else
//            {
//                System.out.println("对啦");
//                break;
//            }
//            System.out.print("请重新输入#");
//        }

        //8.求出0～999之间的所有“水仙花数”并输出。
        //(“水仙花数”是指一个三位数，其各位数字的立方和确好等于该数本身。
        // 如；153＝1＋5＋3?，则153是一个“水仙花数“。）
//        for (int i = 0; i < 1000; i++) {
//            int temp = i;
//            int count = 0;
//            while(temp != 0)
//            {
//                int a = temp % 10;
//                count += a * a * a;
//                temp /= 10;
//            }
//            if(count == i)
//            {
//                System.out.println(i);
//            }
//        }

        //9.计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值 。
//        double sum = 0.0;
//        int flag = 1;
//        for (int i = 1; i < 101; i++) {
//            sum += flag * (1.0 / i);
//            flag = -flag;
//        }
//        System.out.println(sum);

        //10.求两个正整数的最大公约数
//        Scanner sc = new Scanner(System.in);
//        System.out.print("请输入两个数#");
//        int x = sc.nextInt();
//        int y = sc.nextInt();
//        while(true){
//            if(x < y){
//                int temp = y;
//                y = x;
//                x = temp;
//            }
//            if(x - y == 0)
//            {
//                System.out.println("最大公约数为：" + x);
//                break;
//            }
//            int temp = x - y;
//            x = y;
//            y = temp;
//        }

        //11.求一个整数，在内存当中存储时，二进制1的个数。
//        int x = 255;
//        int count = 0;
//        while(x != 0)
//        {
//            x = x & (x - 1);
//            count++;
//        }
//        System.out.println("1的个数为：" + count);

        //12.获取一个数二进制序列中所有的偶数位和奇数位， 分别输出二进制序列
//        int x = 255;
//        int bit = 0x40000000;
//        System.out.println("奇数位:");
//        for (int i = 0; i < 16; i++) {
//            System.out.print((((bit & x) == 0) ? 0 : 1 )+ " ");
//            bit >>>= 2;
//        }
//        bit = 0x80000000;
//        System.out.println();
//        System.out.println("偶数位:");
//        for (int i = 0; i < 16; i++) {
//            System.out.print((((bit & x) == 0) ? 0 : 1 )+ " ");
//            bit >>>= 2;
//        }

        //13.编写代码模拟三次密码输入的场景。
        // 最多能输入三次密码，密码正确，提示“登录成功”,密码错误， 可以重新输 入，最多输入三次。
        // 三次均错，则提示退出程序
//        System.out.println("请输入密码：");
//        String password = "123456zxc";
//        Scanner sc = new Scanner(System.in);
//        String str = new String();
//
//        for (int i = 0; i < 3; i++) {
//            str = sc.next();
//            if(str.equals(password)){
//                System.out.println("密码正确！");
//                break;
//            }
//            else{
//                if(i == 2){
//                    System.out.println("输入次数已满三次！");
//                }
//                else{
//                    System.out.println("密码错误，请重新输入：");
//                }
//            }
//        }

        //14.输出一个整数的每一位，如：123的每一位是1 ， 2 ， 3
//        int x = 2016;
//        int num = 10;
//        while(true){
//            if(x / num == 0){
//                num /= 10;
//                break;
//            }
//            else{
//                num *= 10;
//            }
//        }
//        System.out.println(x + "的每一位是");
//        while(x != 0){
//            System.out.print(x / num + " ");
//            x %= num;
//            num /= 10;
//        }

        //15.输出n*n的乘法口诀表，n由用户输入。
        System.out.println("请输入乘法口诀表的大小");
        Scanner sc = new Scanner(System.in);
        int size = sc.nextInt();
        for (int i = 1; i <= size; i++) {
            for (int j = 1; j <= i; j++) {
                String str = String.format("%2d",i * j);
                System.out.print(j + "*" + i + "=" + str + " ");
            }
            System.out.println();
        }
    }
}
